'''
做为 Apple Store App 独立开发者，你要搞限时促销，为你的应用生成激活码（或者优惠券），
使用 Python 如何生成 200 个激活码（或者优惠券）？
第 0002 题: 将 0001 题生成的 200 个激活码（或者优惠券）保存到 MySQL 关系型数据库中。
'''

import random
import string
import pymysql
#生成200个激活码
forSelect = string.ascii_letters + "0123456789"   #得到abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
def generate(count, length):
    codelist = []
    # count = 200
    # length = 20
    for x in range(count):
        Re = ""
        for y in range(length):
            Re += random.choice(forSelect)   #random.choice(forSelect) 得到随机一个forSelect中的一个字符
        codelist.append(Re)
        # print(Re)
    return codelist


#将激活码插入到数据库
def to_mysql(codelist):
    try:
        conn = pymysql.connect(host="127.0.0.1", user="root", passwd="123456", db="test", port=3306, charset="utf8")
        cur = conn.cursor()
        print('数据库连接成功')
        cur.execute('CREATE DATABASE IF NOT EXISTS activation_code')
        cur.execute('USE activation_code')
        cur.execute('''CREATE TABLE IF NOT EXISTS code(
                                  id INT NOT NULL AUTO_INCREMENT,
                                  code VARCHAR(32) NOT NULL,
                                  PRIMARY KEY(id)
                              )''')
        for code in codelist:
            cur.execute('INSERT INTO code(code) VALUES(%s)', (code))
            cur.connection.commit()
        print('OK!')
    except BaseException as e:
        print(e)
    finally:
        cur.close()
        conn.close()

if __name__ == "__main__":
    # a = generate(200, 20)
    # print(a)
    to_mysql(generate(200,20))



